package algorithm.interview;

import java.util.ArrayList;

public class lastPeople1 {
    public static void main(String[] args) {
        System.out.println(getLast(12,2) +1 );

    }
    // ArrayList删除指定位置的元素,List会将后面的元素向前补位，size变短并且index也变了。
    // 标记。
    private static int getLast(int n, int m){
        //初始化人数
        ArrayList<Integer> list= new ArrayList<>();
        for (int i = 0; i < n; i++) {
            list.add(i);
        }
        //策略。m是步长。kill谁，就把元素从数组中移出，并且此元素的下标-1（表示不包括它了）
        // /记录整个序号下标
        int len =0 ;
        int i = -1;//下标
        int res = 0;
        while (list.size() != 1){
            i++;
            if(i == list.size()){
                i = 0; //防止下标越界
            }

            len++;
            if(len == m){
                list.remove(i);
                len =0;//步长清零。
                i--;
            }

            if(list.size() == 1) {
                res=  list.get(0);
            }

        }
        return res;
    }

}
